// Copyright 2022 a.o.smith ALL Rights Reserved
package com.liuxinlong.modules.chimi.service;

import com.liuxinlong.modules.entity.BarPointsRule;
import com.liuxinlong.modules.entity.BarPointsRuleDetail;

import java.util.List;
import java.util.Map;

/**
 * 论坛积分规则服务层接口
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2023-06-14
 */
public interface BarPointsRuleService {
    /**
     * 分页查询积分规则信息
     *
     * @param queryParam 请求信息
     * @return 积分配置信息列表
     */
    List<Map<String, Object>> pagePointsRule(Map<String, Object> queryParam);

    /**
     * 查询积分规则总数
     *
     * @param queryParam 请求信息
     * @return 积分规则总数
     */
    int getPointsRuleCount(Map<String, Object> queryParam);

    /**
     * 新增论坛积分规则
     *
     * @param barPointsRule 论坛积分规则
     */
    void addPointsRule(BarPointsRule barPointsRule);

    /**
     * 更新论坛积分规则
     *
     * @param barPointsRule 论坛积分规则
     */
    void updatePointsRule(BarPointsRule barPointsRule);

    /**
     * 删除论坛积分规则
     *
     * @param id 积分规则id
     */
    void deletePointsRule(String id);

    /**
     * 修改积分规则状态
     *
     * @param id 积分规则id
     */
    void updatePointsRuleStatus(String id);

    /**
     * 查询积分规则详细规则
     *
     * @param id 积分规则id
     */
    List<Map<String, Object>> pagePointsRuleDetail(String id);

    /**
     * 修改积分规则细则
     *
     * @param id         积分规则id
     * @param detailList 细则列表
     */
    void updatePointsRuleDetail(String id, List<BarPointsRuleDetail> detailList);

    /**
     * 查询当前生效积分规则
     *
     * @param business 业务类型
     * @return 当前生效积分规则
     */
    BarPointsRuleDetail getCurrentEffectiveRule(int business);
}
